1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with methods, systems, and computer program products for organizing and rendering presentation of electronic objects (such an electronic mail messages, documents, and so forth) according to relationships among the objects.
2. Description of the Related Art
The general category of personal “office services” software available today includes productivity enhancing offerings such as electronic mail, or “e-mail”, software; electronic calendaring software; automated alarm or reminder programs; and so forth. Many people use these systems every day while at the office, and home use of such systems continues to grow in popularity.
The current state of the art in e-mail services allows organizing incoming e-mail in an electronic in-basket according to one or more attributes which are associated with the e-mail items. Typically, the attributes which are used to sort e-mail include the arrival date and time of the message, an urgency or priority indicator associated with the message, a sender of the message, a subject of the message, etc. The values of these attributes are obtained from a very limited number of explicitly-defined information fields within the mail items, where the values are typically preceded by a keyword or tag which semantically indicates “the following information is the message subject” and so forth.
Normally, e-mail systems include an out-basket for outbound messages, and these messages may be sorted according to the same or different criteria as the messages in the in-basket.
The baskets for incoming and outbound messages are typically defined as folders, each of which has a unique entry in the file system directory of the user's computer. (For example, the file system might include a directory named “Mailbox”, with subdirectories or files named “InBasket” and “OutBasket”.) Most e-mail systems also include a “Trash” basket where messages can be transferred if the user wants them to be deleted, and many e-mail systems also allow the user to define additional folders; these folders are then stored in the same manner as the baskets for the inbound and outgoing messages. As an example of a user-defined folder, a user might define separate folders for people he regularly communicates with, and store mail messages received from and/or sent to these people in the corresponding separate folders. As another example, a software developer might create a “Development” folder and a “Test” folder for storing messages about the development and testing of her software development project. In some e-mail systems, the folders (including the user-defined folders) can also be subdivided into other folders. The Test folder, as an example, might be further divided into an “Open Problems” folder and a “Closed Problems” folder, and perhaps a “Test Schedule” folder as well.
In other e-mail systems, all messages are physically stored in a single database. In these systems, the organization of messages into different folders for display to the user is a logical view which is typically achieved through use of pointers.
If the user of an e-mail system wants to see his incoming mail, he selects the “In” mail folder or other type of in-basket icon, and its contents are visually presented. Similarly, when he wants to see a different folder, he selects an icon associated with that folder, and the display is then changed to show the contents of the selected folder. Once the defined sorting criteria are applied to the messages of the selected folder, the folder contents are displayed in a structure corresponding to those criteria. That is, if the sorting criteria specify that messages are to be sorted by date and time of receipt, then the messages are displayed as an in-order list according to date and time; if the messages are being sorted by sender, then the list is organized alphabetically by the value of the sender field. Newly-arriving messages are in some cases displayed in the proper place according to the sorting criteria, while in other systems newly-arriving messages are displayed at the end of the sorted messages regardless of the sorting criteria used in creating the displayed list.
One popular e-mail system is the Lotus Notes® (or “Notes”™) mail system from Lotus Development Corporation. A Notes user may choose to create one or more folders in which to organize incoming e-mail messages. By default, one mailbox exists for incoming mail, and incoming e-mail messages are sorted within this mailbox according to arrival date and time. A logical view into this mailbox is available for messages with a delivery priority of “urgent”. If urgent e-mail messages arrive, these messages are displayed in a separate pane of the mailbox window. If a user defines additional folders, each of these folders may also be displayed in its own pane. (“Lotus Notes” is a registered trademark, and “Notes” is a trademark, of Lotus Development Corporation and/or IBM Corporation.)
The Eudora® e-mail product from QUALCOMM Incorporated also has mailboxes for incoming, outbound, and trash messages, and allows the user to define additional mailboxes. By default, messages in these folders are sorted according to date and time; the user is allowed to change this sort order to sort the messages by priority, sender, subject, size, status (e.g. whether a response to the message has been sent), and whether the message has an attachment. (“Eudora” is a registered trademark of QUALCOMM Incorporated.)
However, the ordering which a user can select in prior art e-mail systems is limited to the options that have been predetermined by the e-mail system developers. That is, without writing customized code, there is no way for the user to organize mail messages except by selecting from the relatively limited number of choices that are provided by a particular system.
Messages can be transmitted from one mail folder to another manually, using a drag-and-drop operation. In addition, in many systems, the user can define a mailbox “filter” which transfers messages from one mailbox to another (equivalently, from one folder to another). A filter operates as a type of macro, with the underlying programmatic support provided by the e-mail system in response to the user's specification of filter parameters. For example, criteria for invoking a transfer from a user's incoming mailbox to the trash folder might include factors such as the presence of a particular character string in the body of the mail message or in the “From” field or “Subject” field, and so forth. Upon arrival of an incoming message, it is compared to the defined filters to determine if any type of transfer should be performed. If the message matches the defined filtering criteria, then an automatic transfer may be performed. Filters can also be set to operate upon explicit request from the user (for example, by pressing a “Filter Messages” button), and may be defined to operate on folders other than the in-basket. Filters may also perform a limited number of actions other than transferring messages, depending on the support provided by the e-mail system. For example, when using the Eudora system, filters can be used to dynamically change the priority of a message, and a particular filter may perform as many as five actions which are selected from the available actions list.
In addition to sorting mail messages, color coding has also been suggested to better identify mail items of different categories within mailboxes. Color coding may also be used in other productivity software such as calendaring systems, to enable the user to quickly locate items of a certain type. For example, a user might configure her calendaring system such that all scheduled meetings on the topic of “Quality Review” are displayed in a red font.
However, while existing e-mail and other personal office services products (referred to equivalently herein as “productivity software” or “personal productivity software”) may be functionally adequate, there is room for improvement in these systems. For example, a particular user's mail folders might contain hundreds or even thousands of mail messages, and these mail messages may have been accumulated over a long period of time. Existing e-mail systems are limited in their ability to present these messages in useful ways. In addition, a user might have a large number of stored calendar entries for use by her electronic calendaring application. Often, a number of the stored items are related to each other. (A user who is working on testing for a software development project, for example, will normally receive many e-mail messages which pertain to the testing of the project, and will also receive meeting notices for meetings discussing the status of the testing operation.) It would be beneficial to provide techniques whereby stored objects can be presented to the user in improved and more useful ways.